25
תגובות

העלאת מסד ל000webhost

פתח eilamshapira ,
אני רוצה להעלות מסד נתונים די גדול (550MB) ל000webhost. איך אני עושה את זה?

25 תשובות

avatar ענה razand ב 04 לאוגוסט 2012 #

איך שמעלים כל מסד אחר..
דרך ה PHPMYADMIN

avatar ענה eilamshapira ב 04 לאוגוסט 2012 #

הphpmyadmin לא מוכן לקבל שם מסד של יותר מ2 מגה

avatar ענה iiddaannyy ב 04 לאוגוסט 2012 #

תבצע export למסד ואחר כך תריץ את התוכן שלו עם multi_query.

avatar ענה eilamshapira ב 04 לאוגוסט 2012 #

איך אני עושה את זה?

avatar ענה iiddaannyy ב 05 לאוגוסט 2012 #

עם file_get_contents או fread תקרא את תוכן הקובץ, ותריץ אותו עם multi_query (מתודה של המחלקה mysqli, את החלופה שלה ב-pdo אני לא מכיר, אבל זה לא משנה כי אתה עושה את זה באופן חד פעמי).

avatar ענה eilamshapira ב 05 לאוגוסט 2012 #

אבל הקובץ הוא יותר מחצי ג'יגה,
זה אמור להפסיק את הפעולה שלו תוך 90 שניות.

avatar ענה OrelBeY ב 05 לאוגוסט 2012 #

ואת זה אתה יכול לשנות באמצעות htaccess, אני חושב:

php_value max_execution_time 999999

avatar ענה intval ב 06 לאוגוסט 2012 #

אתה יכול להעלות פשוט את הקובץ לשרת דרך FTP ואחרי זה להפעיל משהו כזה

mysql_connect();
mysql_select_db(..);
mysql_query('source /path/to/file.sql')

avatar ענה eilamshapira ב 07 לאוגוסט 2012 #

לא עוזר.
הקוד שלי -

<?php
$mysql_host = "****";
$mysql_database = "****";
$mysql_user = "****";
$mysql_password = "****";
$link = mysql_connect($mysql_host, $mysql_user, $mysql_password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($mysql_database);
if (mysql_query("****.sql")) {
  echo "success";
}
?>

avatar ענה intval ב 08 לאוגוסט 2012 #

ומה השגיאה?

mysql_query("source /home/blabla/****.sql")

avatar ענה eilamshapira ב 08 לאוגוסט 2012 #

עדיין לא רץ, יכול להיות שה קשור שנאי משתמש בcPanle ולא בDA?
הקוד עכשיו:

<?php
$mysql_host = "****";
$mysql_database = "****";
$mysql_user = "****";
$mysql_password = "****";
$link = mysql_connect($mysql_host, $mysql_user, $mysql_password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($mysql_database);
if (mysql_query("source /home/****/****.sql")) {
  echo "success";
}
?>

avatar ענה intval ב 09 לאוגוסט 2012 #

יכול להיות שצריך לקרוא את הודעת השגיאה.

avatar ענה eilamshapira ב 09 לאוגוסט 2012 #

אין הודעת שגיאה, אני מקבל דף לבן

avatar ענה ldbrgr ב 09 לאוגוסט 2012 #

במקרה שהשאילתא לא תקינה תקבל דף לבן, תוסיף ELSE לתנאי.
או שתעתיק את זה:

<?php
$mysql_host = "****";
$mysql_database = "****";
$mysql_user = "****";
$mysql_password = "****";
$link = mysql_connect($mysql_host, $mysql_user, $mysql_password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($mysql_database);
if (mysql_query("source /home/****/****.sql")) {
  echo "success";
} else {
  echo mysql_error();
}
?>

avatar ענה eilamshapira ב 09 לאוגוסט 2012 #

השגיאה היא -
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'source /home/****/****.sql' at line 1

avatar ענה ldbrgr ב 09 לאוגוסט 2012 #

כנראה שmysql_query לא תומך, תתחבר דרך shell .

exec("mysql db_name -uuser_name -ppassword < /home/****/****.sql");

avatar ענה eilamshapira ב 09 לאוגוסט 2012 #

עכשיו -
Warning: exec() has been disabled for security reasons in /home/****/public_html/runup.php on line 15

avatar ענה iiddaannyy ב 09 לאוגוסט 2012 #

$mysqli = new mysqli($mysql_host, $mysql_user, $mysql_password, $mysql_database);
if ($mysqli->multi_query(file_get_contents('path/to/file.sql'))) {
    echo 'success';
}
else {
    echo 'failed';
}

avatar ענה eilamshapira ב 09 לאוגוסט 2012 #

המסד גדול מידי -
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 551561005 bytes) in /home/****/public_html/runup.php on line 19

avatar ענה ldbrgr ב 09 לאוגוסט 2012 #

יש כמה אפשרויות:
א. תחלק את הקובץ ל10 חלקים.
ב. PMA - סוג של מדריך..
ג. BigDump - אתר רשמי.

בהצלחה.

avatar ענה intval ב 10 לאוגוסט 2012 #

לפני שלוש כתבתי קוד לשחזור import export של phpmyadmin
אולי הוא יעזור.

avatar ענה iiddaannyy ב 10 לאוגוסט 2012 #

אלכס הקוד שלך יכול לגרום לבעייה אם יש איזה ; שלא מפריד בין שאילתות.

avatar ענה intval ב 10 לאוגוסט 2012 #

צודק. הוא יכול :)
יש שם עוד הרבה בעיות אבל יש גם סיכוי נמוך שהוא יפתור לו את הבעיה.

avatar ענה eilamshapira ב 11 לאוגוסט 2012 #

שוב מופיע שהמסד גדול מידי..
לא הבנתי מה אני עושה עם PMA,
bigdump לא עבד בכלל.

avatar ענה xzxxx7 ב 12 לאוגוסט 2012 #

ניסת את האפשרות הראשונה..? (תחלק את הקובץ ל10 חלקים)